cmake_minimum_required(VERSION 3.16)
project(mediapipe_gpu_demo)

# 设置 C++17 标准（MediaPipe 需要 C++14 或更高）
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 查找必需依赖
find_package(OpenCV REQUIRED)
find_package(OpenGL REQUIRED)

# 包含 MediaPipe 头文件（假设已正确安装）
include_directories(
    ${CMAKE_SOURCE_DIR}/third_party/mediapipe
)

# 设置 GPU 相关编译选项
add_definitions(-DMEDIAPIPE_DISABLE_GPU=0)  # 启用 GPU 支持
add_definitions(-D__OPENCV_SUPPORT=1)       # 启用 OpenCV 支持

# 添加可执行目标
add_executable(gpu_demo
    gpu_demo.cc
)

# 链接依赖库
target_link_libraries(gpu_demo
    PRIVATE
    mediapipe
    ${OpenCV_LIBS}
    OpenGL::GL
    OpenGL::EGL
    GLESv2
)

# 添加 GPU 相关链接选项（根据平台调整）
if(UNIX AND NOT APPLE)
    target_link_libraries(gpu_demo
        PRIVATE
        X11
    )
endif()

# 设置库搜索路径（根据实际安装路径调整）
link_directories(
    ${CMAKE_SOURCE_DIR}/third_party/mediapipe/lib
)